/* 
    应用中心_服务配置模块
 */

<template>
    <div class="app-container">
        <el-row class="wrapper config">
            <el-col :span="11" class="warp-main">
                <!-- 配置集列表.start -->
                <div class="el-bar">
                    <p>
                        <i class="iconfont icon-users"></i>配置组列表
                        <span>共
                            <span>{{queryTotal}}</span>条</span>
                    </p>
                    <!-- 配置集展示table.start -->
                    <el-table :data="serviceConfigTableData" @row-click="configMapTableRowClick" border highlight-current-row style="width: 100%;margin:10px 0" :default-sort="{prop: 'date', order: 'descending'}">
                        <el-table-column prop="configMapName" label="配置组" sortable>
                        </el-table-column>
                        <el-table-column prop="namespace" label="所属空间" sortable>
                        </el-table-column>
                        <el-table-column prop="createTime" label="创建时间" sortable>
                        </el-table-column>
                    </el-table>

                    <!-- 分页.start -->
                    <div v-show="pageListLoading" class="pagination-container" style="text-align:center;margin-top:10px;">
                        <el-pagination @current-change="handleCurrentChange" :current-page.sync="listQuery.page" :page-size="listQuery.pageSize" layout="prev, pager, next" :total="queryTotal">
                        </el-pagination>
                    </div>
                    <!-- 分页.end -->

                    <!-- 配置集展示table.end -->

                    <!-- 配置集表单添加.start -->
                    <el-form ref="configMapForm" :model="configMapForm" :rules="configMapRules" label-width="80px">
                        <el-form-item label="名称" prop="configMapName">
                            <el-input :disabled="disableConfigMapNameInput" v-model="configMapForm.configMapName"></el-input>
                        </el-form-item>
                        <!-- <el-form-item label="所属空间" prop="namespace">
                            <el-select :disabled="disableNameSpaceSeleted" @visible-change="loadNameSpaceSelectBox" v-model="configMapForm.namespace" placeholder="请选择">
                                <el-option v-for="item in namespaceArr" :key="item.name" :label="item.name" :value="item.name">
                                </el-option>
                            </el-select>
                        </el-form-item> -->
                        <el-form-item>
                            <el-button type="primary" :disabled="disableAddConfigMapButton" @click="addConfigMap">增加</el-button>
                            <el-button :disabled="disableSaveConfigMapButton" @click="saveConfigMap" type="success">保存</el-button>
                            <el-button :disabled="disableDeleteConfigMapButton" type="danger" @click="deleteConfigMap">删除</el-button>
                        </el-form-item>
                    </el-form>
                    <!-- 配置集表单添加.end -->
                </div>
                <!-- 配置集列表.end -->
            </el-col>
            <el-col :span="13" class="warp-main" style="padding-left:10px;">
                <!-- 配置文件列表.start -->
                <div class="el-bar">
                    <p>
                        <i class="iconfont icon-users"></i>配置文件列表
                        <span>共
                            <span>{{fileTotal}}</span>条</span>
                    </p>
                    <el-form :inline="true" :model="filters" style="position:relative;margin-top:10px;">
                        <el-form-item>
                            <el-button :disabled="disableAddFileButton" type="primary" @click="openAddFileDialog">添加配置文件</el-button>
                        </el-form-item>
                    </el-form>

                    <!--配置文件展示数据列表.start-->
                    <el-table :data="storeFileData" highlight-current-row @selection-change="selsChange" style="width: 100%;">
                        <el-table-column type="selection" width="50"></el-table-column>
                        <el-table-column prop="configMapName" label="配置组" sortable>
                        </el-table-column>
                        <el-table-column prop="fileName" label="文件名" sortable></el-table-column>
                        <el-table-column prop="source" label="操作" sortable>
                            <template slot-scope="scope">
                                <el-button size="small" @click="showEditDialog(scope.$index, scope.row)">编辑</el-button>
                                <el-button type="danger" size="small" @click="deleteConfigFile(scope.$index, scope.row)">删除</el-button>
                            </template>
                        </el-table-column>
                    </el-table>
                    <!--批量删除配置文件-->
                    <el-col :span="24">
                        <el-button class="el-delete" type="danger" @click="batchDeleteBook" :disabled="this.sels.length===0">删除</el-button>
                    </el-col>
                    <!--配置文件展示数据列表.end-->

                    <!-- 添加配置文件弹框界面.start-->
                    <el-dialog title="添加配置文件" :visible.sync="addFormVisible" :close-on-click-modal="false">
                        <el-form ref="addFiileform" :model="addFiileform" :rules="addFileFormRules" label-width="120px">
                            <el-form-item label="空间名称" prop="addNamespace">
                                <el-input :disabled="true" v-model="addFiileform.namespace" ></el-input>
                            </el-form-item>
                            <el-form-item label="配置集名称" prop="addConfigMapName">
                                <el-input :disabled="true" v-model="addFiileform.configMapName" ></el-input>
                            </el-form-item>
                            <el-form-item label="名称" prop="addfilename">
                                <el-input v-model="addFiileform.fileName" placeholder="名称"></el-input>
                            </el-form-item>
                            <el-form-item label="内容" prop="addfilecontent" >
                                <el-input type="textarea" :autosize="{ minRows: 10, maxRows: 15}"  v-model="addFiileform.fileContent"></el-input>
                            </el-form-item>
                            <div class="form-btn" style="text-align:right">
                                <el-button @click.native="addFormVisible = false">取消</el-button>
                                <el-button type="primary" @click="addConfigFile">确定</el-button>
                            </div>
                        </el-form>
                        
                    </el-dialog>


                    <!-- 添加配置文件弹框界面.end-->

                    <!--编辑弹框界面.start-->
                    <el-dialog title="修改配置文件" v-model="editFormVisible" :close-on-click-modal="false">
                        <el-form ref="editFileform" :model="editFileform" :rules="editFileFormRules" label-width="120px">
                            <el-form-item label="名称" prop="editFileName">
                                <el-input :disabled="true" v-model="editFileform.fileName" placeholder="名称"></el-input>
                            </el-form-item>
                            <el-form-item label="内容" prop="editFileContent">
                                <el-input type="textarea" :autosize="{ minRows: 10, maxRows: 15}" v-model="editFileform.fileContent"></el-input>
                            </el-form-item>
                            <div class="form-btn" style="text-align:right">
                                <el-button @click.native="closeEditDialog">取消</el-button>
                            <el-button type="primary" @click="updateConfigFile">确定</el-button>
                            </div>   
                        </el-form>
                        
                    </el-dialog>
                    <!--编辑弹框界面.end-->
                </div>
                <!-- 配置文件列表.end -->
            </el-col>
        </el-row>
    </div>
</template>
<script>
export default {
    data() {
        // 添加配置集表单校验
        const validateConfigMapName = (rule, value, callback) => {
            const nameRegex = /(^[a-z]){1}([a-z]|[0-9]|[-]){2,61}([a-z]|[0-9]){1}$/;
			if (value.length < 2) {
				callback(new Error('配置组名称不能为空'));
			} else if (!nameRegex.test(value)) {
                console.log('check configmap name')
				callback(new Error('以[a~z]开头，允许[0~9]、[-]，长度大于4，且以小写英文和数字结尾'));
			} else {
                callback();
            }
        };
        // 配置集所属命名空间校验
        /* const validateNamespace = (rule, value, callback) => {
			if (value.length < 2) {
				callback(new Error('请选择命名空间'));
			} else {
				callback();
			}
        }; */

        // 修改配置文件表单校验
        const validateAddFileName = (rule, value, callback) => {
            // console.log('value=' + this.addFiileform.fileName)
            value = this.addFiileform.fileName;
			if (typeof value == 'undefined') {
				callback(new Error('请输入文件名'));
			} else if (value.length < 4 || value.length > 32) {
				callback(new Error('文件名长度为:4-32'));
			} else {
                callback();
            }
        };
        // 修改配置文件,文件内容不能为空
        const validateAddFileContent = (rule, value, callback) => {
            value = this.addFiileform.fileContent;
			if (typeof value == 'undefined') {
				callback(new Error('请输入文件内容'));
			} else if (value.length == 0) {
				callback(new Error('请输入文件内容'));
			} else {
                callback();
            }
        };
        // 修改配置文件,所属命名空间不能为空
        const validateAddNamespace = (rule, value, callback) => {
            value = this.addFiileform.namespace;
			if (typeof value == 'undefined') {
				callback(new Error('请输入命名空间'));
			} else if (value.length == 0) {
				callback(new Error('请输入命名空间'));
			} else {
                callback();
            }
        };
        // 修改配置文件,配置集不能为空
        const validateAddConfigMapName = (rule, value, callback) => {
            value = this.addFiileform.configMapName;
			if (typeof value == 'undefined') {
				callback(new Error('请输入配置集名称'));
			} else if (value.length == 0) {
				callback(new Error('请输入配置集名称'));
			} else {
                callback();
            }
        };
        // 编辑文件内容
        const validateEditFileName = (rule, value, callback) => {
            // console.log('value=' + this.addFiileform.fileName)
            value = this.editFileform.fileName;
			if (typeof value == 'undefined') {
				callback(new Error('请输入文件名'));
			} else if (value.length < 4 || value.length > 32) {
				callback(new Error('文件名长度为:4-32'));
			} else {
                callback();
            }
        };

        const validateEditFileContent = (rule, value, callback) => {
            value = this.editFileform.fileContent;
			if (typeof value == 'undefined') {
				callback(new Error('请输入文件内容'));
			} else if (value.length == 0) {
				callback(new Error('请输入文件内容'));
			} else {
                callback();
            }
        };
        

        return {
            // 分页插件配置
            queryTotal: 0,
            // 是否显示分页插件
            pageListLoading: false,
            // 分页查询实体类
            listQuery: {
                page: 1,
                pageSize: 5,
                queryKey: ''
            },
            // 此list,存放从后台查询得到的配置集
            configMapList: [],
            // 配置集下面,配置文件的个数
            fileTotal: 0,


            activeName2: 'first',
            filters: {
                name: ''
            },
            tabs: 'first',
            formInline: {
                user: '',
                region: ''
            },

            // 配置集form
            configMapForm: {
                configMapName: '',
                namespace: ''
            },
            // 添加配置文件form
            addFiileform: {
                fileName: '',
                fileContent: '',
                namespace: '',
                configMapName: ''
            },
            // 修改配置文件form
            editFileform: {
                fileName: '',
                fileContent: '',
                namespace: '',
                configMapName: ''
            },
            // 配置集添加,所属命名空间选择下拉框数组
            namespaceArr: [],

            // 按钮和输入框禁用
            // 配置集输入框禁用
            disableConfigMapNameInput: true,
            // 配置集下拉框禁用
            disableNameSpaceSeleted: true,
            // 保存按钮禁用
            disableSaveConfigMapButton: true,
            // 删除配置集按钮禁用
            disableDeleteConfigMapButton: true,
            // 禁用添加配置文件按钮
            disableAddFileButton: true,
            // 禁用添加配置集按钮
            disableAddConfigMapButton: this.$store.getters.namespace == '' ? true : false,


            //配置组table列表数据
            serviceConfigTableData: [],

            // 配置组文件数据
            storeFileData: [],

            // 添加配置集表单校验规则
            configMapRules: {
                configMapName: [
                    { required: true, trigger: 'blur', validator: validateConfigMapName }
                ],
                /* namespace: [
                    { required: true, trigger: 'blur', validator: validateNamespace }
                ] */
            },
            // 添加配置文件表单校验
            addFileFormRules: {
                addfilename: [
                    { required: true, trigger: 'blur', validator: validateAddFileName }
                ],
                addfilecontent: [
                   { required: true, trigger: 'blur', validator: validateAddFileContent }
                ],
                addNamespace: [
                   { required: true, trigger: 'blur', validator: validateAddNamespace }
                ],
                addConfigMapName: [
                   { required: true, trigger: 'blur', validator: validateAddConfigMapName }
                ]
            },
            // 修改配置文件表单校验
            editFileFormRules: {
                editFileName: [
                    { required: true, trigger: 'blur', validator: validateEditFileName }
                ],
                editFileContent: [
                    { required: true, trigger: 'blur', validator: validateEditFileContent }
                ]
            },

            sels: [],
            //列表选中列
            //上传镜像相关数据
            editFormVisible: false, //上传镜像是否显示
            //上传文件对话框是否显示
            addFormVisible: false, 

            // 当前选择的空间
            // currentNamespace: this.userBaseInfo.getCurrentNamespace(),
        };
    },
    created() {
        // 页面实例化时,加载数据
        // 加载配置集
        this.getConfigMap();
        // 加载命名空间选择下拉框
        // this.loadNameSpaceSelectBox();
    },
    methods: {
        // 分页搜索,当前页面改变触发事件
        handleCurrentChange(val) {
            // 获取当前是第几页
            this.listQuery.page = val;
            this.serviceConfigTableData = this.queryConfigMap();
        },
        // 页面加载,获得配置集
        getConfigMap() {
            /* let _isSuperAdmin = this.userBaseInfo.getIsSuperAdmin();
            if (_isSuperAdmin == 1) {
                // 超级管理员
                // 获取数据
                this.httpClient.httpClientget(this.projectConfig.URL_API_APP_CONFIG_GET_ALL_CONFIGMAP, '').then(res => {
                    if (res.meta.code == this.projectConfig.CODE_OK) {
                        // 成功获取数据
                        // 获得查询的总数
                        let _total = res.data.total;
                        this.queryTotal = _total;
                        if (_total > this.listQuery.pageSize) {
                            // 如果查询的总数大于分页的pageSize,则说明需要分页
                            // 将数据放在全局的list中,实现在前端进行分页显示
                            this.configMapList = res.data.configMap;
                            // 从全局的list中进行第一次查询,并且将得到的数据赋值给
                            this.serviceConfigTableData = this.queryConfigMap();
                            // 显示分页插件
                            this.pageListLoading = true;
                        } else {
                            // 如果查询的总数小于分页的pageSize,不需要分页
                            this.serviceConfigTableData = res.data.configMap;
                        }
                    }
                });
            } else {
                // 普通登陆用户

            } */
            // 根据当前选择的空间,获得配置集
            let selectedNamespace = this.$store.getters.namespace;
            if (selectedNamespace != '' && typeof selectedNamespace != 'undefined') {
                let _url = this.projectConfig.URL_API_APP_CONFIG_GET_CONFIGMAP_NAMESPACE + '/' + selectedNamespace;
                // 请求后台
                this.httpClient.httpClientget(_url, '').then(res => {
                    if (res.meta.code == this.projectConfig.CODE_OK) {
                        // 成功获取数据
                        // 获得查询的总数
                        let _total = res.data.total;
                        this.queryTotal = _total;
                        if (_total > this.listQuery.pageSize) {
                            // 如果查询的总数大于分页的pageSize,则说明需要分页
                            // 将数据放在全局的list中,实现在前端进行分页显示
                            this.configMapList = res.data.configMap;
                            // 从全局的list中进行第一次查询,并且将得到的数据赋值给
                            this.serviceConfigTableData = this.queryConfigMap();
                            // 显示分页插件
                            this.pageListLoading = true;
                        } else if (_total > 0 && _total <= this.listQuery.pageSize) {
                            // 如果查询的总数小于分页的pageSize,不需要分页
                            this.serviceConfigTableData = res.data.configMap;
                        } else {
                            this.reset();
                            this.pageListLoading = false;
                        }
                    }
                });
            }

        },
        // 从全局保存的配置集list中,进行分页查询
        queryConfigMap() {
            // 当前页数
            let page = this.listQuery.page;
            // 查询数量
            let pageSize = this.listQuery.pageSize;
            if (this.configMapList.length > 0) {
                return this.configMapList.filter((item, index) => index < pageSize * page && index >= pageSize * (page - 1));
            } else {
                return [];
            }
        },
        // 点击配置集展示table行事件
        configMapTableRowClick: function(row, event, column) {
            // console.log('row=' + JSON.stringify(row));
            // 赋值给配置集添加表单,数据展示
            this.configMapForm.configMapName = row.configMapName;
            this.configMapForm.namespace = row.namespace;

            // 可以添加配置文件
            this.disableAddFileButton = false;
            // 可以删除
            this.disableDeleteConfigMapButton = false;

            // 不能修改
            this.disableSaveConfigMapButton = true;
            // 不能输入
            this.disableConfigMapNameInput = true;
            // 不能选择
            this.disableNameSpaceSeleted = true;


            // 赋值到右边文件展示table
            this.storeFileData = row.files.items;
            this.fileTotal = row.files.total;


            // 
        },
        // 加载所属命名空间选择下拉框
        /* loadNameSpaceSelectBox() {
            let param = [this.userBaseInfo.getUserId()];
            this.httpClient.getParamOnPath(this.projectConfig.URL_API_APP_CONFIG_GET_NAMESPACE_COMBOBOX_USERID, param).then(res => {
                if (res.meta.code == this.projectConfig.CODE_OK) {
                    this.namespaceArr = res.data;
                }
            });
        }, */
        // 新增配置组
        addConfigMap() {
            // 保存按钮解除禁用
            this.disableSaveConfigMapButton = false;
            // 删除配置集按钮禁用
            this.disableDeleteConfigMapButton = true;
            // 添加配置文件按钮禁用
            this.disableAddFileButton = true;

            // 配置集表单清空
            this.configMapForm.configMapName = '';
            // this.configMapForm.namespace = '';
            
            // 打开输入框
            this.disableConfigMapNameInput = false;
            this.disableNameSpaceSeleted = false;
        },
        // 保存配置组
        saveConfigMap() {
            // 表单校验
            this.$refs.configMapForm.validate(valid => {
                if (valid) {
                    // 校验通过
                    // 发送请求
                    this.configMapForm.namespace = this.$store.getters.namespace;
                    this.httpClient.httpClientPost(this.projectConfig.URL_API_APP_CONFIG_ADD_CONFIGMAP,this.configMapForm).then(res => {
                        // 200 新增成功
                        // 601 数据重复
                        // 704 操作异常
                        /* let _code = res.meta.code;
                        let _type = 'error';
                        let _message = res.meta.message;

                        if (_code == this.projectConfig.CODE_OK) {
                            _type = 'success';
                            // 重置页面
                            this.reset();
                            // 加载配置集数据
                            this.getConfigMap();
                        } else if (_code == 601) {
                            _type = 'warning';
                        } 

                        // 弹框提示
                        this.$message({
							showClose: true,
							message: _message,
							type: _type,
							duration: 5 * 1000
                        }); */
                        
                        // 进来就是200
                        // 重置页面
                        this.reset();
                        // 加载配置集数据
                        this.getConfigMap();
                    });
                } else {
                    return false;
                }
            });
        },
        // 重置页面
        reset() {
            // 保存按钮解除禁用
            this.disableSaveConfigMapButton = true;
            // 删除配置集按钮禁用
            this.disableDeleteConfigMapButton = true;
            // 添加配置文件按钮禁用
            this.disableAddFileButton = true;

            // 配置集表单清空
            this.configMapForm.configMapName = '';
            this.configMapForm.namespace = '';
            
            // 打开输入框
            this.disableConfigMapNameInput = true;
            this.disableNameSpaceSeleted = true;

            // 分页对象重置
            this.listQuery.page = 1;
            this.queryTotal = 0;

            this.fileTotal = 0;

            // table重置
            this.serviceConfigTableData = [];
            this.storeFileData = [];

            // 重新加载配置展示table
            // this.getConfigMap();

            // 关闭新增文件的对话框
            this.addFormVisible = false;
            // 关闭修改文件对话框
            this.editFormVisible = false;

            // 清空对话框
            // 清空添加配置文件form
            this.addFiileform =  {
                fileName: '',
                fileContent: '',
                namespace: '',
                configMapName: ''
            };

            // 清空修改配置文件form
            this.editFileform = {
                fileName: '',
                fileContent: '',
                namespace: '',
                configMapName: ''
            };

        },
        // 打开添加配置文件的对话框
        openAddFileDialog() {
            this.addFormVisible = true;
            // 赋值到对话框中命名空间和配置集
            this.addFiileform.configMapName = this.configMapForm.configMapName;
            // this.addFiileform.namespace = this.configMapForm.namespace;
            this.addFiileform.namespace = this.$store.getters.namespace;
        },
        // 删除配置集
        deleteConfigMap() {
            // 校验
            this.$refs.configMapForm.validate(valid => {
                // 校验通过
                if (valid) {
                    // 删除确认
                    this.$confirm('此操作将永久删除配置组,以及配置组下的所有文件, 是否继续?', '提示', {
                        confirmButtonText: '确定',
                        cancelButtonText: '取消',
                        type: 'warning'
                    }).then(() => {
                        // 执行删除操作
                        // console.log('configmap=' + JSON.stringify(this.configMapForm));
                        const param = this.configMapForm;
                        this.httpClient.httpClientDelete(this.projectConfig.URL_API_APP_CONFIG_DELETE_CONFIGMAP, param).then(res => {
                            /* let _msg = res.meta.message;
                            let _type = 'error';
                            if (res.meta.code = this.projectConfig.CODE_OK) {
                                _type = 'success';
                                // 重置当前页面
                                this.reset();
                                // 加载配置集数据
                                this.getConfigMap();
                            }
                            this.$message({
                                type: _type,
                                message: _msg,
                                showClose: true,
                                duration: 5 * 1000
                            }); */
                            // 进来就是200
                            // 重置当前页面
                            this.reset();
                            // 加载配置集数据
                            this.getConfigMap();
                        })
                        
                    }).catch(() => {
                       /*  this.$message({
                            type: 'info',
                            message: '已取消删除'
                        }); */
                    });
                } else {
                    return false;
                }
            })
            
        },
        // 添加配置文件
        addConfigFile() {
            // 校验
            this.$refs.addFiileform.validate(valid => {
                if (valid) {
                    // 校验通过
                    this.httpClient.httpClientPost(this.projectConfig.URL_API_APP_CONFIG_ADD_CONFIGFILE,this.addFiileform).then(res => {
                        // 704 操作异常
                        // 200 新增成功
                        // 601 数据重复
                        /* let _code = res.meta.code;
                        let _msg = res.meta.message;
                        let _type = 'error';
                        if ( _code == this.projectConfig.CODE_OK) {
                            _type = 'success';
                            // 重置页面
                            this.reset();
                            // 加载配置集数据
                            this.getConfigMap();
                        } else if ( _code == 601 ) {
                            _type = 'warning';
                        } 
                        // 弹框提示
                        this.$message({
							showClose: true,
							message: _msg,
							type: _type,
							duration: 5 * 1000
                        }); */	

                        // 200
                        // 重置页面
                        this.reset();
                        // 加载配置集数据
                        this.getConfigMap();
                    });
                } else {
                    return false;
                }
            });
        },
        // 修改配置文件
        updateConfigFile() {
            this.$refs.editFileform.validate(valid => {
                if (valid) {
                    // 校验通过
                    this.httpClient.httpClientPatch(this.projectConfig.URL_API_APP_CONFIG_UPDATE_CONFIGFILE,this.editFileform).then(res => {
                        /* let _code = res.meta.code;
                        let _type = 'error';
                        let _msg = res.meta.message;
                        if ( _code == this.projectConfig.CODE_OK) {
                            _type = 'success';
                            // 重置页面
                            this.reset();
                            // 加载配置集数据
                            this.getConfigMap();
                        }
                        // 弹框提示
						this.$message({
							showClose: true,
							message: _msg,
							type: _type,
							duration: 5 * 1000
                        }); */	
                        
                        // 重置页面
                        this.reset();
                        // 加载配置集数据
                        this.getConfigMap();
                    }); 

                } else {
                    return false;
                }
            });

        },
        // 打开修改配置文件的对话框
        showEditDialog: function(index, row) {
            this.editFormVisible = true;
            // 赋值给修改配置文件的对话框
            this.editFileform = row;
        },
        // 关闭修改配置文件的对话框
        closeEditDialog() {
            this.editFormVisible = false;
        },
        // 删除单个配置文件
        deleteConfigFile: function(index, row) {
            // 删除确认
            this.$confirm('此操作将永久删除此配置文件, 是否继续?', '提示', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning'
            }).then(() => {
                // 执行删除操作
                this.httpClient.httpClientDelete(this.projectConfig.URL_API_APP_CONFIG_DELETE_CONFIGFILE, row).then(res => {
                    /* let _msg = res.meta.message;
                    let _type = 'error';
                    if (res.meta.code == this.projectConfig.CODE_OK) {
                        _type = 'success';
                        // 重置配置集展示table
                        this.serviceConfigTableData = [];
                        // 重置当前页面
                        this.reset();
                        // 加载配置集数据
                        this.getConfigMap();
                    }
                    this.$message({
                        type: _type,
                        message: _msg,
                        showClose: true,
                        duration: 5 * 1000
                    }); */

                    // 200
                    // 重置配置集展示table
                    this.serviceConfigTableData = [];
                    // 重置当前页面
                    this.reset();
                    // 加载配置集数据
                    this.getConfigMap();
                })
                
            }).catch(() => {
                /* this.$message({
                    type: 'info',
                    message: '已取消删除'
                }); */
            });
            
        },
        // 选择要删除的配置文件
        selsChange: function(sels) {
            this.sels = sels;
        },
        // 打开新增配置文件对话框
        showAddNode: function() {
            this.addFormVisible = true;
        },
        //批量删除
        batchDeleteBook: function() {
            // 得到要删除的文件
            const fileNameList = [];
            fileNameList.push(this.sels.map(item => item.fileName).toString())

            // delete json
            const data = {
                namespace: this.configMapForm.namespace,
                configMapName: this.configMapForm.configMapName,
                fileName: fileNameList.toString()
            };

            this.$confirm('确认删除选中记录吗？', '提示', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning'
            }).then(() => {
                this.httpClient.httpClientDelete(this.projectConfig.URL_API_APP_CONFIG_BATCH_DELETE_CONFIGFILE,data).then(res => {
                    /* let _msg = res.meta.message;
                    let _type = 'error';
                    if (res.meta.code == this.projectConfig.CODE_OK) {
                        _type = 'success';
                        // 重置配置集展示table
                        this.serviceConfigTableData = [];
                        // 重置当前页面
                        this.reset();
                        // 加载配置集数据
                        this.getConfigMap();
                
                    }
                    this.$message({
                        type: _type,
                        message: _msg,
                        showClose: true,
                        duration: 5 * 1000
                    }); */

                    // 重置配置集展示table
                    this.serviceConfigTableData = [];
                    // 重置当前页面
                    this.reset();
                    // 加载配置集数据
                    this.getConfigMap();
                });
            }).catch(() => {
                /* this.$message({
                    type: 'info',
                    message: '已取消删除'
                }); */
            });
        }
    },
    computed: {
        getCurrentNamespace() {
            return this.$store.getters.namespace;
        }
    },
    watch: {
        getCurrentNamespace(val) {
            // 当选择选择头部空间下拉框的时候,触发事件
            // console.log('我在服务配置页面,监听空间选择=' + val);
            // 获取配置集
            this.getConfigMap();
        },
        
    }
};
</script>
<style>
.config .el-table tr {
    text-align: center;
}

.config .el-time {
    border: 1px solid #eaeaea;
    border-radius: 4px;
}

.config .el-bottom {
    padding-bottom: 50px;
    margin-top: 10px;
}

.config .el-select {
    border: 1px solid #eaeaea;
    border-radius: 2px;
    width: 100%;
}

.config .el-bar {
    position: relative;
}

.config .el-bar .nbd {
    border-bottom: none;
}

.config .el-dialog__header {
    padding: 20px 20px 10px;
    border-bottom: 1px solid #ccc;
}

.config el-icon-search {
    border: 1px solid #eaeaea;
    border-radius: 4px;
}

.config .search-input {
    border: 1px solid #eaeaea;
    border-radius: 4px;
}

.config .search .el-input {
    border: 1px solid #eaeaea;
}

.config .el-date-editor--datetimerange {
    border: 1px solid #eaeaea;
    border-radius: 4px;
}

.config .el-table .cell {
    padding: 0;
}

.config .demonstration {
    display: block;
}

.config .demonstration img {
    width: 60px;
    height: 60px;
}

.config .el-delete {
    position: absolute;
    top: 50px;
    left: 138px;
}

.config .ul01 {
    position: absolute;
    top: 69px;
    left: 62px;
}
.config .el-pagination{
    margin-bottom:10px;
}
</style>